package leetcode.题库.动态规划;

/**
 * 跳跃游戏
 *
 * @author yanzhenming
 * @date 2023/4/12  21:38
 */

/**
 * 描述
 *
 * 给定一个非负整数数组 nums ，你最初位于数组的 第一个下标 。
 *
 * 数组中的每个元素代表你在该位置可以跳跃的最大长度。
 *
 * 判断你是否能够到达最后一个下标。
 */

/**
 * 思路
 *
 * 求每个位置能到的最远位置
 *
 */
public class Solution55 {

    public boolean canJump(int[] nums) {
        int fastest = nums[0];
        for (int i = 1; i < nums.length; i++) {
            if (i > fastest) break;
            fastest = Math.max(nums[i] + i, fastest);
        }
        return fastest >= nums.length - 1 ? true : false;
    }

}
